﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// 射击脚本：
/// 1、点击鼠标左键开始射击
/// 2、使用射线检测来获得射击目标
/// 3、使用刚体控制炮弹的移动
/// </summary>
public class Fire : MonoBehaviour
{
    //炮弹预制体对象
    public GameObject bullet;
    //炮弹速度
    public float speed = 500;

    // Update is called once per frame
    void Update()
    {
        //如果按下鼠标左键
        if (Input.GetKeyDown(KeyCode.Mouse0))
        {
            //将屏幕坐标点转为射线
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            RaycastHit hit;
            //使用射线检测来获得射击目标
            if(Physics.Raycast(ray, out hit, 100f))
            {
                //通过预制体创建炮弹对象
                GameObject gameObject = Instantiate(bullet, transform.position, transform.rotation);

                //使炮弹对象朝向目标
                gameObject.transform.LookAt(hit.point);

                //使用刚体控制炮弹的移动
                gameObject.GetComponent<Rigidbody>().AddForce(gameObject.transform.forward * speed);
            }
        }
    }
}
